package org.cige.ws.edu.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.cige.ws.edu.contants.Constants;
import org.cige.ws.edu.mapper.FFileReordMapper;
import org.cige.ws.edu.mapper.FileReordMapper;
import org.cige.ws.edu.model.FFileReordFileQuery;
import org.cige.ws.edu.model.FFileReordQuery;
import org.cige.ws.edu.model.PageQuery;
import org.cige.ws.edu.model.entity.FFileReord;
import org.cige.ws.edu.model.entity.FileModule;
import org.cige.ws.edu.model.entity.FileReord;
import org.cige.ws.edu.model.vo.FFileReordVO;
import org.cige.ws.edu.service.FileReordService;
import org.cige.ws.edu.service.IFileModuleService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootBizTipException;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 目录/文件记录(FileReord)表服务实现类
 *
 * @author fengchengguo
 * @since 2024-08-05 14:39:37
 */
@Service
public class FileReordServiceImpl extends ServiceImpl<FFileReordMapper, FFileReord> implements FileReordService {

    @Override
    public IPage<FFileReord> listPage(PageQuery<FFileReordQuery> page) {
//        LambdaQueryWrapper<FFileReord> wrapper = Wrappers.lambdaQuery(FFileReord.class);
//        if(page.getQuery()!=null){
//            if(StringUtils.isNotEmpty(page.getQuery().getParent())){
//                wrapper.eq(FFileReord::getParent,page.getQuery().getParent());
//            }
//            if(StringUtils.isNotEmpty(page.getQuery().getFileName())){
//                wrapper.like(FFileReord::getFileName, page.getQuery().getFileName());
//            }
//            if (StringUtils.isNotEmpty(page.getQuery().getLabel())){
//                wrapper.like(FFileReord::getFileLabel, page.getQuery().getLabel());
//            }
//        }
//        wrapper.orderByDesc(FFileReord::getCreateTime);
//        IPage<FFileReord> p = new Page<FFileReord>(page.getCurrent(), page.getSize());
        return getBaseMapper().listPage(page,page.getQuery());
    }

    @Override
    public IPage<FFileReord> listPageFile(PageQuery<FFileReordFileQuery> page) {
        LambdaQueryWrapper<FFileReord> wrapper = Wrappers.lambdaQuery(FFileReord.class);
        if(page.getQuery()!=null){
            if(StringUtils.isNotEmpty(page.getQuery().getFileName())){
                wrapper.like(FFileReord::getFileName, page.getQuery().getFileName());
            }
            if (StringUtils.isNotEmpty(page.getQuery().getLabel())){
                wrapper.like(FFileReord::getFileLabel, page.getQuery().getLabel());
            }
        }
        wrapper.like(FFileReord::getFileType, Constants.FileType.FILE.getCode());
        wrapper.orderByDesc(FFileReord::getCreateTime);
        wrapper.orderByDesc(FFileReord::getFileOrder);
        IPage<FFileReord> p = new Page<>(page.getCurrent(), page.getSize());
        return page(p, wrapper);
    }

    @Resource
    private IFileModuleService fileModuleService;

    @Override
    public IPage<FileModule> listPageModule(Page page) {
        return fileModuleService.page(page);
    }
}

